package com.ido.otaclient.font;

import android.app.Activity;
import android.content.Intent;

import com.ido.otaclient.base.BasePresenter;
import com.ido.otaclient.base.BaseView;
import com.ido.otaclient.module.Veneer;

import java.util.List;

/**
 * Copyright (c) 2019 深圳市爱都科技有限公司. All rights reserved.
 *
 * @Author: xyb
 * @CreateDate: 2020-03-06 16:45
 * @description
 */
public interface FontContract {

    interface View extends BaseView<Presenter> {//UI
        /**
         * 显示加载框
         */
        void showLoading();

        /**
         * 隐藏弹框
         */
        void hideLoading();

        /**
         * 显示提示信息
         * @param message
         */
        void showMessage(String message);

        /**
         * 设置选择文件之后的图标
         */
        void setFontDrawable();

        /**
         * 显示字库文件名
         * @param isVisible
         */
        void showFontName(boolean isVisible);

        /**
         * 设置字库名字
         * @param fontName
         */
        void setFontName(String fontName);

        /**
         * 获得字库文件名称
         * @return
         */
        String getFontName();

        /**
         * 设置fontPath
         * @param fontPath
         */
        void setFontPath(String fontPath);

        /**
         * 获得字库文件路径
         * @return
         */
        String getFontPath();

        /**
         * 设置字库版本
         * @param fontVersion
         */
        void setFontVersion(String fontVersion);

        /**
         * 获得字库版本
         * @return
         */
        String getFontVersion();

        /**
         * 显示新固件的图片
         */
        void setNewDrawable();

        /**
         * 显示新固件的名称
         * @param isVisible
         */
        void showNewName(boolean isVisible);

        /**
         * 获得最新固件名称
         * @return
         */
        String getNewName();

        /**
         * 显示新固件名称
         * @param newName
         */
        void setNewName(String newName);

        /**
         * 返回新固件的地址
         * @return
         */
        String getNewPath();

        /**
         * 获得新固件的地址
         * @param newPath
         */
        void setNewPath(String newPath);

        /**
         * 获得新固件的版本号
         * @return
         */
        String getNewVersion();

        /**
         * 设置新固件的版本号
         * @param newVersion
         */
        void setNewVersion(String newVersion);

        /**
         * 获得设备id
         * @return
         */
        String getDeviceId();

        /**
         * 设置设备id
         * @param deviceId
         */
        void setDeviceId(String deviceId);

        /**
         * 设置压缩文件的路径
         * @param pathFolderZip
         */
        void setPathFolderZip(String pathFolderZip);

        /**
         * 获得zip文件的路径
         * @return
         */
        String getPathFolderZip();

        /**
         * 获得单板状态的集合
         * @return
         */
        List<Veneer> getVeneerList();

        /**
         * 设置挡板的集合
         * @param veneerList
         */
        void setVeneerList(List<Veneer> veneerList);

        /**
         * 是否完成
         * @param isComplete
         */
        void setIsComplete(boolean isComplete);

        /**
         * 得到是否全部完成的状态
         * @return
         */
        boolean getIsComplete();

        /**
         * 返回到上一个界面
         */
        void back();

        /**
         * 弹出取消框
         */
        void showConfirmCancel();

    }


    interface Presenter extends BasePresenter {//功能
        /**
         * 将文件打包成zip
         */
        void fileZip();

        /**
         * 上传固件固件名称与确认上传
         */
        void uploadAndConfirmFile();

        /**
         * 选择文件
         * @param requestCode
         */
        void chooseFile(int requestCode, Activity activity);

        /**
         * 选择文件回调
         * @param act
         * @param requestCode
         * @param resultCode
         * @param data
         */
        void onActivityResult(Activity act, int requestCode, int resultCode, Intent data);

        /**
         * 初始化配置信息
         */
        void initConfig();
    }

}
